
#include "FichierDial.h"

FichierDial::FichierDial()
{
    fichier.open("dials", ios_base::in|ios_base::out|ios_base::app);
    if(fichier.fail())
    {
        cout << "Erreur!!"<< endl;
    }
    fichier.seekg(ios_base::beg);
    fichier.seekp(ios_base::end);
    imgScreenDial.LoadFromFile("Images/dial.bmp");
    screenDial.SetImage(imgScreenDial);

}
FichierDial::~FichierDial()
{
    fichier.close();
}


bool FichierDial::isEnd()
{
    bool end = fichier.peek()==EOF;
    if(fichier.eof())
    {
        fichier.clear();
    }
    return end;

}

int FichierDial::searchDial(string n, string s)
{

    fichier.seekg(ios_base::beg);
    bool peek = false;
    string name;
    string dialogue;
    while(not isEnd() and !peek)
    {
        getline(fichier, name);
        getline(fichier, dialogue);

        peek = (n+s==name);
    }
    if(peek) text = dialogue;
    return peek;

}

String FichierDial::readLine()
{
    String l;
    string temp = "";
    while(temp.size()<40 and text.size()>0)
    {
        temp += readWord();
        temp += ' ';
    }
    l.SetText(temp);
    return l;
}

string FichierDial::readWord()
{

    int i = 0;
    char c = text[i];
    string s = "";
    while(c != ' ' and c != '\0')
    {
        s += c;
        i++;
        c = text[i];
    }
    text.erase(0, i+1);
    return s;
}

bool FichierDial::endRead()
{
    return text.size()==0;
}

void FichierDial::draw(RenderWindow& f, Pnj pnj, Fighter perso)
{
    cout << "la "<< endl;
    float x = perso.getPositionX() - (MAIN_WIDTH/2);
    float y = perso.getPositionY() + (MAIN_HEIGHT/2)-screenDial.GetSize().y;
    screenDial.SetPosition(x,y);

    f.Draw(screenDial);
    pnj.setHeadPosition((int) (x+((screenDial.GetSize().x-1280)/2.0)),(int)((y+(screenDial.GetSize().y-200)/2.0)));
    f.Draw(pnj.getPnjHead());

    int i = 1;
    while(!endRead() and i<5)
    {
        String s = readLine();

        s.SetPosition(x + 220, y + (i*35));
        s.SetSize(24);
        f.Draw(s);
        i++;

    }

}
